

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 6.00.0366 */
/* at Fri May 14 20:01:51 2010
 */
/* Compiler settings for OcfExt.idl:
    Os, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __OcfExt_h__
#define __OcfExt_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IOcfExt_FWD_DEFINED__
#define __IOcfExt_FWD_DEFINED__
typedef interface IOcfExt IOcfExt;
#endif 	/* __IOcfExt_FWD_DEFINED__ */


#ifndef __IOcfExt2_FWD_DEFINED__
#define __IOcfExt2_FWD_DEFINED__
typedef interface IOcfExt2 IOcfExt2;
#endif 	/* __IOcfExt2_FWD_DEFINED__ */


#ifndef __IOcfExt3_FWD_DEFINED__
#define __IOcfExt3_FWD_DEFINED__
typedef interface IOcfExt3 IOcfExt3;
#endif 	/* __IOcfExt3_FWD_DEFINED__ */


#ifndef __IOcfExt4_FWD_DEFINED__
#define __IOcfExt4_FWD_DEFINED__
typedef interface IOcfExt4 IOcfExt4;
#endif 	/* __IOcfExt4_FWD_DEFINED__ */


#ifndef __IOcfExtSink_FWD_DEFINED__
#define __IOcfExtSink_FWD_DEFINED__
typedef interface IOcfExtSink IOcfExtSink;
#endif 	/* __IOcfExtSink_FWD_DEFINED__ */


#ifndef __IOcfExtSink2_FWD_DEFINED__
#define __IOcfExtSink2_FWD_DEFINED__
typedef interface IOcfExtSink2 IOcfExtSink2;
#endif 	/* __IOcfExtSink2_FWD_DEFINED__ */


#ifndef __IOcfExtSink3_FWD_DEFINED__
#define __IOcfExtSink3_FWD_DEFINED__
typedef interface IOcfExtSink3 IOcfExtSink3;
#endif 	/* __IOcfExtSink3_FWD_DEFINED__ */


#ifndef __IOcfExtSink4_FWD_DEFINED__
#define __IOcfExtSink4_FWD_DEFINED__
typedef interface IOcfExtSink4 IOcfExtSink4;
#endif 	/* __IOcfExtSink4_FWD_DEFINED__ */


#ifndef __IOcfDistributor_FWD_DEFINED__
#define __IOcfDistributor_FWD_DEFINED__
typedef interface IOcfDistributor IOcfDistributor;
#endif 	/* __IOcfDistributor_FWD_DEFINED__ */


#ifndef __IOcfDistributor2_FWD_DEFINED__
#define __IOcfDistributor2_FWD_DEFINED__
typedef interface IOcfDistributor2 IOcfDistributor2;
#endif 	/* __IOcfDistributor2_FWD_DEFINED__ */


#ifndef __IOcfDistributor3_FWD_DEFINED__
#define __IOcfDistributor3_FWD_DEFINED__
typedef interface IOcfDistributor3 IOcfDistributor3;
#endif 	/* __IOcfDistributor3_FWD_DEFINED__ */


#ifndef __IOcfDistributorSink_FWD_DEFINED__
#define __IOcfDistributorSink_FWD_DEFINED__
typedef interface IOcfDistributorSink IOcfDistributorSink;
#endif 	/* __IOcfDistributorSink_FWD_DEFINED__ */


#ifndef __IOcfKeyQuery_FWD_DEFINED__
#define __IOcfKeyQuery_FWD_DEFINED__
typedef interface IOcfKeyQuery IOcfKeyQuery;
#endif 	/* __IOcfKeyQuery_FWD_DEFINED__ */


#ifndef __IOcfPacket_FWD_DEFINED__
#define __IOcfPacket_FWD_DEFINED__
typedef interface IOcfPacket IOcfPacket;
#endif 	/* __IOcfPacket_FWD_DEFINED__ */


#ifndef __IOcfMemoryManager_FWD_DEFINED__
#define __IOcfMemoryManager_FWD_DEFINED__
typedef interface IOcfMemoryManager IOcfMemoryManager;
#endif 	/* __IOcfMemoryManager_FWD_DEFINED__ */


#ifndef __IOcfExPerfInfo_FWD_DEFINED__
#define __IOcfExPerfInfo_FWD_DEFINED__
typedef interface IOcfExPerfInfo IOcfExPerfInfo;
#endif 	/* __IOcfExPerfInfo_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

/* interface __MIDL_itf_OcfExt_0000 */
/* [local] */ 

typedef /* [public][public][public][public][public][public][public] */ struct __MIDL___MIDL_itf_OcfExt_0000_0001
    {
    ULONG m_ulBindX;
    ULONG m_ulIdentity;
    } 	OCFEX_SESSION_CONTEXT;

typedef /* [public][public][public][public][public][public][public][public][public] */ 
enum __MIDL___MIDL_itf_OcfExt_0000_0002
    {	OBJ_SEQ_KEY0	= 0,
	OBJ_SEQ_KEY1	= OBJ_SEQ_KEY0 + 1,
	OBJ_SEQ_KEY2	= OBJ_SEQ_KEY1 + 1,
	OBJ_SEQ_NOKEY	= OBJ_SEQ_KEY2 + 1,
	OBJ_SEQ_END	= OBJ_SEQ_NOKEY
    } 	OBJ_SEQ;



extern RPC_IF_HANDLE __MIDL_itf_OcfExt_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_OcfExt_0000_v0_0_s_ifspec;

#ifndef __IOcfExt_INTERFACE_DEFINED__
#define __IOcfExt_INTERFACE_DEFINED__

/* interface IOcfExt */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfExt;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("553E4C13-492E-413b-9134-DF2CF76433B0")
    IOcfExt : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnSetConfigPath( 
            /* [string][in] */ unsigned char *pszCfgPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnInit( 
            /* [in] */ USHORT uiServerID,
            /* [in] */ ULONG ulMaxBindX,
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnUninit( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetStatus( 
            /* [out] */ LONG *plStatus) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnBind( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnUnbind( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnIn( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnRequestAnything( 
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfExtVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfExt * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfExt * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfExt * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetConfigPath )( 
            IOcfExt * This,
            /* [string][in] */ unsigned char *pszCfgPath);
        
        HRESULT ( STDMETHODCALLTYPE *fnInit )( 
            IOcfExt * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ ULONG ulMaxBindX,
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink);
        
        HRESULT ( STDMETHODCALLTYPE *fnUninit )( 
            IOcfExt * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetStatus )( 
            IOcfExt * This,
            /* [out] */ LONG *plStatus);
        
        HRESULT ( STDMETHODCALLTYPE *fnBind )( 
            IOcfExt * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnbind )( 
            IOcfExt * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnIn )( 
            IOcfExt * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnRequestAnything )( 
            IOcfExt * This,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet);
        
        END_INTERFACE
    } IOcfExtVtbl;

    interface IOcfExt
    {
        CONST_VTBL struct IOcfExtVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfExt_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfExt_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfExt_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfExt_fnSetConfigPath(This,pszCfgPath)	\
    (This)->lpVtbl -> fnSetConfigPath(This,pszCfgPath)

#define IOcfExt_fnInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)	\
    (This)->lpVtbl -> fnInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)

#define IOcfExt_fnUninit(This)	\
    (This)->lpVtbl -> fnUninit(This)

#define IOcfExt_fnGetStatus(This,plStatus)	\
    (This)->lpVtbl -> fnGetStatus(This,plStatus)

#define IOcfExt_fnBind(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnBind(This,ulBindX,ulIdentity,ulKey)

#define IOcfExt_fnUnbind(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnUnbind(This,ulBindX,ulIdentity,ulKey)

#define IOcfExt_fnIn(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnIn(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExt_fnRequestAnything(This,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)	\
    (This)->lpVtbl -> fnRequestAnything(This,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfExt_fnSetConfigPath_Proxy( 
    IOcfExt * This,
    /* [string][in] */ unsigned char *pszCfgPath);


void __RPC_STUB IOcfExt_fnSetConfigPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExt_fnInit_Proxy( 
    IOcfExt * This,
    /* [in] */ USHORT uiServerID,
    /* [in] */ ULONG ulMaxBindX,
    /* [in] */ BYTE byServiceType,
    /* [in] */ IUnknown *pISink);


void __RPC_STUB IOcfExt_fnInit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExt_fnUninit_Proxy( 
    IOcfExt * This);


void __RPC_STUB IOcfExt_fnUninit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExt_fnGetStatus_Proxy( 
    IOcfExt * This,
    /* [out] */ LONG *plStatus);


void __RPC_STUB IOcfExt_fnGetStatus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExt_fnBind_Proxy( 
    IOcfExt * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ ULONG ulKey);


void __RPC_STUB IOcfExt_fnBind_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExt_fnUnbind_Proxy( 
    IOcfExt * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ ULONG ulKey);


void __RPC_STUB IOcfExt_fnUnbind_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExt_fnIn_Proxy( 
    IOcfExt * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExt_fnIn_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExt_fnRequestAnything_Proxy( 
    IOcfExt * This,
    /* [in] */ LONG lLenQuery,
    /* [size_is][in] */ unsigned char *pchQuery,
    /* [in] */ ULONG ulMaxLenRet,
    /* [out] */ LONG *plLenRet,
    /* [length_is][size_is][out] */ unsigned char *pchRet);


void __RPC_STUB IOcfExt_fnRequestAnything_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfExt_INTERFACE_DEFINED__ */


#ifndef __IOcfExt2_INTERFACE_DEFINED__
#define __IOcfExt2_INTERFACE_DEFINED__

/* interface IOcfExt2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfExt2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A4672558-A6AA-4dd3-A37C-363283BD7F74")
    IOcfExt2 : public IOcfExt
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnPropagated( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfExt2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfExt2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfExt2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfExt2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetConfigPath )( 
            IOcfExt2 * This,
            /* [string][in] */ unsigned char *pszCfgPath);
        
        HRESULT ( STDMETHODCALLTYPE *fnInit )( 
            IOcfExt2 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ ULONG ulMaxBindX,
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink);
        
        HRESULT ( STDMETHODCALLTYPE *fnUninit )( 
            IOcfExt2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetStatus )( 
            IOcfExt2 * This,
            /* [out] */ LONG *plStatus);
        
        HRESULT ( STDMETHODCALLTYPE *fnBind )( 
            IOcfExt2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnbind )( 
            IOcfExt2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnIn )( 
            IOcfExt2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnRequestAnything )( 
            IOcfExt2 * This,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet);
        
        HRESULT ( STDMETHODCALLTYPE *fnPropagated )( 
            IOcfExt2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        END_INTERFACE
    } IOcfExt2Vtbl;

    interface IOcfExt2
    {
        CONST_VTBL struct IOcfExt2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfExt2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfExt2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfExt2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfExt2_fnSetConfigPath(This,pszCfgPath)	\
    (This)->lpVtbl -> fnSetConfigPath(This,pszCfgPath)

#define IOcfExt2_fnInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)	\
    (This)->lpVtbl -> fnInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)

#define IOcfExt2_fnUninit(This)	\
    (This)->lpVtbl -> fnUninit(This)

#define IOcfExt2_fnGetStatus(This,plStatus)	\
    (This)->lpVtbl -> fnGetStatus(This,plStatus)

#define IOcfExt2_fnBind(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnBind(This,ulBindX,ulIdentity,ulKey)

#define IOcfExt2_fnUnbind(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnUnbind(This,ulBindX,ulIdentity,ulKey)

#define IOcfExt2_fnIn(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnIn(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExt2_fnRequestAnything(This,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)	\
    (This)->lpVtbl -> fnRequestAnything(This,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)


#define IOcfExt2_fnPropagated(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnPropagated(This,ulBindX,ulIdentity,lLen,pchData)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfExt2_fnPropagated_Proxy( 
    IOcfExt2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExt2_fnPropagated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfExt2_INTERFACE_DEFINED__ */


#ifndef __IOcfExt3_INTERFACE_DEFINED__
#define __IOcfExt3_INTERFACE_DEFINED__

/* interface IOcfExt3 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfExt3;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F284D1C5-17B3-4559-BF15-745C61746932")
    IOcfExt3 : public IOcfExt2
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnPreInit( 
            /* [in] */ USHORT uiServerID,
            /* [in] */ ULONG ulMaxBindX,
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnPostUninit( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnRequestAnythingWithAsync( 
            /* [in] */ USHORT uiFromServerID,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfExt3Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfExt3 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfExt3 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfExt3 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetConfigPath )( 
            IOcfExt3 * This,
            /* [string][in] */ unsigned char *pszCfgPath);
        
        HRESULT ( STDMETHODCALLTYPE *fnInit )( 
            IOcfExt3 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ ULONG ulMaxBindX,
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink);
        
        HRESULT ( STDMETHODCALLTYPE *fnUninit )( 
            IOcfExt3 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetStatus )( 
            IOcfExt3 * This,
            /* [out] */ LONG *plStatus);
        
        HRESULT ( STDMETHODCALLTYPE *fnBind )( 
            IOcfExt3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnbind )( 
            IOcfExt3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnIn )( 
            IOcfExt3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnRequestAnything )( 
            IOcfExt3 * This,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet);
        
        HRESULT ( STDMETHODCALLTYPE *fnPropagated )( 
            IOcfExt3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnPreInit )( 
            IOcfExt3 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ ULONG ulMaxBindX,
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink);
        
        HRESULT ( STDMETHODCALLTYPE *fnPostUninit )( 
            IOcfExt3 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnRequestAnythingWithAsync )( 
            IOcfExt3 * This,
            /* [in] */ USHORT uiFromServerID,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet);
        
        END_INTERFACE
    } IOcfExt3Vtbl;

    interface IOcfExt3
    {
        CONST_VTBL struct IOcfExt3Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfExt3_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfExt3_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfExt3_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfExt3_fnSetConfigPath(This,pszCfgPath)	\
    (This)->lpVtbl -> fnSetConfigPath(This,pszCfgPath)

#define IOcfExt3_fnInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)	\
    (This)->lpVtbl -> fnInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)

#define IOcfExt3_fnUninit(This)	\
    (This)->lpVtbl -> fnUninit(This)

#define IOcfExt3_fnGetStatus(This,plStatus)	\
    (This)->lpVtbl -> fnGetStatus(This,plStatus)

#define IOcfExt3_fnBind(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnBind(This,ulBindX,ulIdentity,ulKey)

#define IOcfExt3_fnUnbind(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnUnbind(This,ulBindX,ulIdentity,ulKey)

#define IOcfExt3_fnIn(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnIn(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExt3_fnRequestAnything(This,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)	\
    (This)->lpVtbl -> fnRequestAnything(This,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)


#define IOcfExt3_fnPropagated(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnPropagated(This,ulBindX,ulIdentity,lLen,pchData)


#define IOcfExt3_fnPreInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)	\
    (This)->lpVtbl -> fnPreInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)

#define IOcfExt3_fnPostUninit(This)	\
    (This)->lpVtbl -> fnPostUninit(This)

#define IOcfExt3_fnRequestAnythingWithAsync(This,uiFromServerID,byFromServiceType,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)	\
    (This)->lpVtbl -> fnRequestAnythingWithAsync(This,uiFromServerID,byFromServiceType,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfExt3_fnPreInit_Proxy( 
    IOcfExt3 * This,
    /* [in] */ USHORT uiServerID,
    /* [in] */ ULONG ulMaxBindX,
    /* [in] */ BYTE byServiceType,
    /* [in] */ IUnknown *pISink);


void __RPC_STUB IOcfExt3_fnPreInit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExt3_fnPostUninit_Proxy( 
    IOcfExt3 * This);


void __RPC_STUB IOcfExt3_fnPostUninit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExt3_fnRequestAnythingWithAsync_Proxy( 
    IOcfExt3 * This,
    /* [in] */ USHORT uiFromServerID,
    /* [in] */ BYTE byFromServiceType,
    /* [in] */ LONG lLenQuery,
    /* [size_is][in] */ unsigned char *pchQuery,
    /* [in] */ ULONG ulMaxLenRet,
    /* [out] */ LONG *plLenRet,
    /* [length_is][size_is][out] */ unsigned char *pchRet);


void __RPC_STUB IOcfExt3_fnRequestAnythingWithAsync_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfExt3_INTERFACE_DEFINED__ */


#ifndef __IOcfExt4_INTERFACE_DEFINED__
#define __IOcfExt4_INTERFACE_DEFINED__

/* interface IOcfExt4 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfExt4;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9345B66C-1813-41bf-97D5-73232EBC88AF")
    IOcfExt4 : public IOcfExt3
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnRawBind( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [in] */ unsigned char *pchIpBlock) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnRawUnbind( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfExt4Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfExt4 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfExt4 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfExt4 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetConfigPath )( 
            IOcfExt4 * This,
            /* [string][in] */ unsigned char *pszCfgPath);
        
        HRESULT ( STDMETHODCALLTYPE *fnInit )( 
            IOcfExt4 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ ULONG ulMaxBindX,
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink);
        
        HRESULT ( STDMETHODCALLTYPE *fnUninit )( 
            IOcfExt4 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetStatus )( 
            IOcfExt4 * This,
            /* [out] */ LONG *plStatus);
        
        HRESULT ( STDMETHODCALLTYPE *fnBind )( 
            IOcfExt4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnbind )( 
            IOcfExt4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnIn )( 
            IOcfExt4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnRequestAnything )( 
            IOcfExt4 * This,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet);
        
        HRESULT ( STDMETHODCALLTYPE *fnPropagated )( 
            IOcfExt4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnPreInit )( 
            IOcfExt4 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ ULONG ulMaxBindX,
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink);
        
        HRESULT ( STDMETHODCALLTYPE *fnPostUninit )( 
            IOcfExt4 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnRequestAnythingWithAsync )( 
            IOcfExt4 * This,
            /* [in] */ USHORT uiFromServerID,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet);
        
        HRESULT ( STDMETHODCALLTYPE *fnRawBind )( 
            IOcfExt4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [in] */ unsigned char *pchIpBlock);
        
        HRESULT ( STDMETHODCALLTYPE *fnRawUnbind )( 
            IOcfExt4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        END_INTERFACE
    } IOcfExt4Vtbl;

    interface IOcfExt4
    {
        CONST_VTBL struct IOcfExt4Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfExt4_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfExt4_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfExt4_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfExt4_fnSetConfigPath(This,pszCfgPath)	\
    (This)->lpVtbl -> fnSetConfigPath(This,pszCfgPath)

#define IOcfExt4_fnInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)	\
    (This)->lpVtbl -> fnInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)

#define IOcfExt4_fnUninit(This)	\
    (This)->lpVtbl -> fnUninit(This)

#define IOcfExt4_fnGetStatus(This,plStatus)	\
    (This)->lpVtbl -> fnGetStatus(This,plStatus)

#define IOcfExt4_fnBind(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnBind(This,ulBindX,ulIdentity,ulKey)

#define IOcfExt4_fnUnbind(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnUnbind(This,ulBindX,ulIdentity,ulKey)

#define IOcfExt4_fnIn(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnIn(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExt4_fnRequestAnything(This,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)	\
    (This)->lpVtbl -> fnRequestAnything(This,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)


#define IOcfExt4_fnPropagated(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnPropagated(This,ulBindX,ulIdentity,lLen,pchData)


#define IOcfExt4_fnPreInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)	\
    (This)->lpVtbl -> fnPreInit(This,uiServerID,ulMaxBindX,byServiceType,pISink)

#define IOcfExt4_fnPostUninit(This)	\
    (This)->lpVtbl -> fnPostUninit(This)

#define IOcfExt4_fnRequestAnythingWithAsync(This,uiFromServerID,byFromServiceType,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)	\
    (This)->lpVtbl -> fnRequestAnythingWithAsync(This,uiFromServerID,byFromServiceType,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)


#define IOcfExt4_fnRawBind(This,ulBindX,ulIdentity,lLen,pchIpBlock)	\
    (This)->lpVtbl -> fnRawBind(This,ulBindX,ulIdentity,lLen,pchIpBlock)

#define IOcfExt4_fnRawUnbind(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnRawUnbind(This,ulBindX,ulIdentity)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfExt4_fnRawBind_Proxy( 
    IOcfExt4 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLen,
    /* [in] */ unsigned char *pchIpBlock);


void __RPC_STUB IOcfExt4_fnRawBind_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExt4_fnRawUnbind_Proxy( 
    IOcfExt4 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity);


void __RPC_STUB IOcfExt4_fnRawUnbind_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfExt4_INTERFACE_DEFINED__ */


#ifndef __IOcfExtSink_INTERFACE_DEFINED__
#define __IOcfExtSink_INTERFACE_DEFINED__

/* interface IOcfExtSink */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfExtSink;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("90470E2D-4578-44d0-9D96-982CCDAD3709")
    IOcfExtSink : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnOut( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnQueryOcfExt( 
            /* [in] */ LONG lServiceType,
            /* [out] */ IOcfExt **ppIOther) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnRegKey( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnUnregKey( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnFindBindXWithKey( 
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG ulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnFindKeyWithBindX( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ ULONG *pulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnFindIpWithBindX( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pszIp) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnKillBindX( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnSetInfosWithBindX( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetInfosWithBindX( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnSetTraceMessage( 
            /* [string][in] */ unsigned char *pszTraceMessage) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfExtSinkVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfExtSink * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfExtSink * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfExtSink * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut )( 
            IOcfExtSink * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnQueryOcfExt )( 
            IOcfExtSink * This,
            /* [in] */ LONG lServiceType,
            /* [out] */ IOcfExt **ppIOther);
        
        HRESULT ( STDMETHODCALLTYPE *fnRegKey )( 
            IOcfExtSink * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnregKey )( 
            IOcfExtSink * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindBindXWithKey )( 
            IOcfExtSink * This,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindKeyWithBindX )( 
            IOcfExtSink * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ ULONG *pulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindIpWithBindX )( 
            IOcfExtSink * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pszIp);
        
        HRESULT ( STDMETHODCALLTYPE *fnKillBindX )( 
            IOcfExtSink * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetInfosWithBindX )( 
            IOcfExtSink * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetInfosWithBindX )( 
            IOcfExtSink * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetTraceMessage )( 
            IOcfExtSink * This,
            /* [string][in] */ unsigned char *pszTraceMessage);
        
        END_INTERFACE
    } IOcfExtSinkVtbl;

    interface IOcfExtSink
    {
        CONST_VTBL struct IOcfExtSinkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfExtSink_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfExtSink_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfExtSink_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfExtSink_fnOut(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnOut(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink_fnQueryOcfExt(This,lServiceType,ppIOther)	\
    (This)->lpVtbl -> fnQueryOcfExt(This,lServiceType,ppIOther)

#define IOcfExtSink_fnRegKey(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnRegKey(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink_fnUnregKey(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnUnregKey(This,ulBindX,ulIdentity)

#define IOcfExtSink_fnFindBindXWithKey(This,pulBindX,pulIdentity,ulKey)	\
    (This)->lpVtbl -> fnFindBindXWithKey(This,pulBindX,pulIdentity,ulKey)

#define IOcfExtSink_fnFindKeyWithBindX(This,ulBindX,ulIdentity,pulKey)	\
    (This)->lpVtbl -> fnFindKeyWithBindX(This,ulBindX,ulIdentity,pulKey)

#define IOcfExtSink_fnFindIpWithBindX(This,ulBindX,ulIdentity,plLen,pszIp)	\
    (This)->lpVtbl -> fnFindIpWithBindX(This,ulBindX,ulIdentity,plLen,pszIp)

#define IOcfExtSink_fnKillBindX(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnKillBindX(This,ulBindX,ulIdentity)

#define IOcfExtSink_fnSetInfosWithBindX(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnSetInfosWithBindX(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink_fnGetInfosWithBindX(This,ulBindX,ulIdentity,plLen,pchData)	\
    (This)->lpVtbl -> fnGetInfosWithBindX(This,ulBindX,ulIdentity,plLen,pchData)

#define IOcfExtSink_fnSetTraceMessage(This,pszTraceMessage)	\
    (This)->lpVtbl -> fnSetTraceMessage(This,pszTraceMessage)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfExtSink_fnOut_Proxy( 
    IOcfExtSink * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink_fnOut_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink_fnQueryOcfExt_Proxy( 
    IOcfExtSink * This,
    /* [in] */ LONG lServiceType,
    /* [out] */ IOcfExt **ppIOther);


void __RPC_STUB IOcfExtSink_fnQueryOcfExt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink_fnRegKey_Proxy( 
    IOcfExtSink * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ ULONG ulKey);


void __RPC_STUB IOcfExtSink_fnRegKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink_fnUnregKey_Proxy( 
    IOcfExtSink * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity);


void __RPC_STUB IOcfExtSink_fnUnregKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink_fnFindBindXWithKey_Proxy( 
    IOcfExtSink * This,
    /* [out] */ ULONG *pulBindX,
    /* [out] */ ULONG *pulIdentity,
    /* [in] */ ULONG ulKey);


void __RPC_STUB IOcfExtSink_fnFindBindXWithKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink_fnFindKeyWithBindX_Proxy( 
    IOcfExtSink * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [out] */ ULONG *pulKey);


void __RPC_STUB IOcfExtSink_fnFindKeyWithBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink_fnFindIpWithBindX_Proxy( 
    IOcfExtSink * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [out][in] */ LONG *plLen,
    /* [size_is][out] */ unsigned char *pszIp);


void __RPC_STUB IOcfExtSink_fnFindIpWithBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink_fnKillBindX_Proxy( 
    IOcfExtSink * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity);


void __RPC_STUB IOcfExtSink_fnKillBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink_fnSetInfosWithBindX_Proxy( 
    IOcfExtSink * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink_fnSetInfosWithBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink_fnGetInfosWithBindX_Proxy( 
    IOcfExtSink * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [out][in] */ LONG *plLen,
    /* [size_is][out] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink_fnGetInfosWithBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink_fnSetTraceMessage_Proxy( 
    IOcfExtSink * This,
    /* [string][in] */ unsigned char *pszTraceMessage);


void __RPC_STUB IOcfExtSink_fnSetTraceMessage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfExtSink_INTERFACE_DEFINED__ */


#ifndef __IOcfExtSink2_INTERFACE_DEFINED__
#define __IOcfExtSink2_INTERFACE_DEFINED__

/* interface IOcfExtSink2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfExtSink2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("927A9D3D-5D94-4d5a-B520-BD665AF572AD")
    IOcfExtSink2 : public IOcfExtSink
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnOut2( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnPushRegEvent( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnPushUnregEvent( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnPropagate( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnQueryOcfExtSink( 
            /* [in] */ LONG lServiceType,
            /* [out] */ IOcfExtSink **ppIOtherSink) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnOutWithServiceType( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnOut2WithServiceType( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnRegKey2( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnUnregKey2( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnFetchAllSlots( 
            /* [out][in] */ UINT *puiLen,
            /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfExtSink2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfExtSink2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfExtSink2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfExtSink2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnQueryOcfExt )( 
            IOcfExtSink2 * This,
            /* [in] */ LONG lServiceType,
            /* [out] */ IOcfExt **ppIOther);
        
        HRESULT ( STDMETHODCALLTYPE *fnRegKey )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnregKey )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindBindXWithKey )( 
            IOcfExtSink2 * This,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindKeyWithBindX )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ ULONG *pulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindIpWithBindX )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pszIp);
        
        HRESULT ( STDMETHODCALLTYPE *fnKillBindX )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetInfosWithBindX )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetInfosWithBindX )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetTraceMessage )( 
            IOcfExtSink2 * This,
            /* [string][in] */ unsigned char *pszTraceMessage);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut2 )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnPushRegEvent )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnPushUnregEvent )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnPropagate )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnQueryOcfExtSink )( 
            IOcfExtSink2 * This,
            /* [in] */ LONG lServiceType,
            /* [out] */ IOcfExtSink **ppIOtherSink);
        
        HRESULT ( STDMETHODCALLTYPE *fnOutWithServiceType )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut2WithServiceType )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnRegKey2 )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnregKey2 )( 
            IOcfExtSink2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnFetchAllSlots )( 
            IOcfExtSink2 * This,
            /* [out][in] */ UINT *puiLen,
            /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData);
        
        END_INTERFACE
    } IOcfExtSink2Vtbl;

    interface IOcfExtSink2
    {
        CONST_VTBL struct IOcfExtSink2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfExtSink2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfExtSink2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfExtSink2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfExtSink2_fnOut(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnOut(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink2_fnQueryOcfExt(This,lServiceType,ppIOther)	\
    (This)->lpVtbl -> fnQueryOcfExt(This,lServiceType,ppIOther)

#define IOcfExtSink2_fnRegKey(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnRegKey(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink2_fnUnregKey(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnUnregKey(This,ulBindX,ulIdentity)

#define IOcfExtSink2_fnFindBindXWithKey(This,pulBindX,pulIdentity,ulKey)	\
    (This)->lpVtbl -> fnFindBindXWithKey(This,pulBindX,pulIdentity,ulKey)

#define IOcfExtSink2_fnFindKeyWithBindX(This,ulBindX,ulIdentity,pulKey)	\
    (This)->lpVtbl -> fnFindKeyWithBindX(This,ulBindX,ulIdentity,pulKey)

#define IOcfExtSink2_fnFindIpWithBindX(This,ulBindX,ulIdentity,plLen,pszIp)	\
    (This)->lpVtbl -> fnFindIpWithBindX(This,ulBindX,ulIdentity,plLen,pszIp)

#define IOcfExtSink2_fnKillBindX(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnKillBindX(This,ulBindX,ulIdentity)

#define IOcfExtSink2_fnSetInfosWithBindX(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnSetInfosWithBindX(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink2_fnGetInfosWithBindX(This,ulBindX,ulIdentity,plLen,pchData)	\
    (This)->lpVtbl -> fnGetInfosWithBindX(This,ulBindX,ulIdentity,plLen,pchData)

#define IOcfExtSink2_fnSetTraceMessage(This,pszTraceMessage)	\
    (This)->lpVtbl -> fnSetTraceMessage(This,pszTraceMessage)


#define IOcfExtSink2_fnOut2(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnOut2(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink2_fnPushRegEvent(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnPushRegEvent(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink2_fnPushUnregEvent(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnPushUnregEvent(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink2_fnPropagate(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnPropagate(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink2_fnQueryOcfExtSink(This,lServiceType,ppIOtherSink)	\
    (This)->lpVtbl -> fnQueryOcfExtSink(This,lServiceType,ppIOtherSink)

#define IOcfExtSink2_fnOutWithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)	\
    (This)->lpVtbl -> fnOutWithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)

#define IOcfExtSink2_fnOut2WithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)	\
    (This)->lpVtbl -> fnOut2WithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)

#define IOcfExtSink2_fnRegKey2(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnRegKey2(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink2_fnUnregKey2(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnUnregKey2(This,ulBindX,ulIdentity)

#define IOcfExtSink2_fnFetchAllSlots(This,puiLen,ppstData)	\
    (This)->lpVtbl -> fnFetchAllSlots(This,puiLen,ppstData)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfExtSink2_fnOut2_Proxy( 
    IOcfExtSink2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink2_fnOut2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink2_fnPushRegEvent_Proxy( 
    IOcfExtSink2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ ULONG ulKey);


void __RPC_STUB IOcfExtSink2_fnPushRegEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink2_fnPushUnregEvent_Proxy( 
    IOcfExtSink2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ ULONG ulKey);


void __RPC_STUB IOcfExtSink2_fnPushUnregEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink2_fnPropagate_Proxy( 
    IOcfExtSink2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink2_fnPropagate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink2_fnQueryOcfExtSink_Proxy( 
    IOcfExtSink2 * This,
    /* [in] */ LONG lServiceType,
    /* [out] */ IOcfExtSink **ppIOtherSink);


void __RPC_STUB IOcfExtSink2_fnQueryOcfExtSink_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink2_fnOutWithServiceType_Proxy( 
    IOcfExtSink2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ BYTE byServiceType,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink2_fnOutWithServiceType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink2_fnOut2WithServiceType_Proxy( 
    IOcfExtSink2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ BYTE byServiceType,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink2_fnOut2WithServiceType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink2_fnRegKey2_Proxy( 
    IOcfExtSink2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ ULONG ulKey);


void __RPC_STUB IOcfExtSink2_fnRegKey2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink2_fnUnregKey2_Proxy( 
    IOcfExtSink2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity);


void __RPC_STUB IOcfExtSink2_fnUnregKey2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink2_fnFetchAllSlots_Proxy( 
    IOcfExtSink2 * This,
    /* [out][in] */ UINT *puiLen,
    /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData);


void __RPC_STUB IOcfExtSink2_fnFetchAllSlots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfExtSink2_INTERFACE_DEFINED__ */


#ifndef __IOcfExtSink3_INTERFACE_DEFINED__
#define __IOcfExtSink3_INTERFACE_DEFINED__

/* interface IOcfExtSink3 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfExtSink3;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FA04855-9F6F-4d3a-94B9-EA81D41C547E")
    IOcfExtSink3 : public IOcfExtSink2
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnOut3( 
            /* [in] */ ULONG ulArrays,
            /* [max_is][in] */ ULONG aulBindX[  ],
            /* [max_is][in] */ ULONG aulIdentity[  ],
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnOut4( 
            /* [in] */ ULONG ulLenOcfContext,
            /* [max_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetInitialPacketBufferSize( 
            /* [out] */ USHORT *puiInitialPacketBufferSize) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetKeyTableSize( 
            /* [out] */ USHORT *puiKeyTableSize) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnRegExtKey( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [string][in] */ unsigned char *pszKeyString) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnUnregExtKey( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnFindBindXWithExtKey( 
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ unsigned char *pszKeyString) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnFindExtKeyWithBindX( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pszKeyString) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfExtSink3Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfExtSink3 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfExtSink3 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfExtSink3 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnQueryOcfExt )( 
            IOcfExtSink3 * This,
            /* [in] */ LONG lServiceType,
            /* [out] */ IOcfExt **ppIOther);
        
        HRESULT ( STDMETHODCALLTYPE *fnRegKey )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnregKey )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindBindXWithKey )( 
            IOcfExtSink3 * This,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindKeyWithBindX )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ ULONG *pulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindIpWithBindX )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pszIp);
        
        HRESULT ( STDMETHODCALLTYPE *fnKillBindX )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetInfosWithBindX )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetInfosWithBindX )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetTraceMessage )( 
            IOcfExtSink3 * This,
            /* [string][in] */ unsigned char *pszTraceMessage);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut2 )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnPushRegEvent )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnPushUnregEvent )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnPropagate )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnQueryOcfExtSink )( 
            IOcfExtSink3 * This,
            /* [in] */ LONG lServiceType,
            /* [out] */ IOcfExtSink **ppIOtherSink);
        
        HRESULT ( STDMETHODCALLTYPE *fnOutWithServiceType )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut2WithServiceType )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnRegKey2 )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnregKey2 )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnFetchAllSlots )( 
            IOcfExtSink3 * This,
            /* [out][in] */ UINT *puiLen,
            /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut3 )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulArrays,
            /* [max_is][in] */ ULONG aulBindX[  ],
            /* [max_is][in] */ ULONG aulIdentity[  ],
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut4 )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulLenOcfContext,
            /* [max_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetInitialPacketBufferSize )( 
            IOcfExtSink3 * This,
            /* [out] */ USHORT *puiInitialPacketBufferSize);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetKeyTableSize )( 
            IOcfExtSink3 * This,
            /* [out] */ USHORT *puiKeyTableSize);
        
        HRESULT ( STDMETHODCALLTYPE *fnRegExtKey )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [string][in] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnregExtKey )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindBindXWithExtKey )( 
            IOcfExtSink3 * This,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindExtKeyWithBindX )( 
            IOcfExtSink3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pszKeyString);
        
        END_INTERFACE
    } IOcfExtSink3Vtbl;

    interface IOcfExtSink3
    {
        CONST_VTBL struct IOcfExtSink3Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfExtSink3_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfExtSink3_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfExtSink3_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfExtSink3_fnOut(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnOut(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink3_fnQueryOcfExt(This,lServiceType,ppIOther)	\
    (This)->lpVtbl -> fnQueryOcfExt(This,lServiceType,ppIOther)

#define IOcfExtSink3_fnRegKey(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnRegKey(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink3_fnUnregKey(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnUnregKey(This,ulBindX,ulIdentity)

#define IOcfExtSink3_fnFindBindXWithKey(This,pulBindX,pulIdentity,ulKey)	\
    (This)->lpVtbl -> fnFindBindXWithKey(This,pulBindX,pulIdentity,ulKey)

#define IOcfExtSink3_fnFindKeyWithBindX(This,ulBindX,ulIdentity,pulKey)	\
    (This)->lpVtbl -> fnFindKeyWithBindX(This,ulBindX,ulIdentity,pulKey)

#define IOcfExtSink3_fnFindIpWithBindX(This,ulBindX,ulIdentity,plLen,pszIp)	\
    (This)->lpVtbl -> fnFindIpWithBindX(This,ulBindX,ulIdentity,plLen,pszIp)

#define IOcfExtSink3_fnKillBindX(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnKillBindX(This,ulBindX,ulIdentity)

#define IOcfExtSink3_fnSetInfosWithBindX(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnSetInfosWithBindX(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink3_fnGetInfosWithBindX(This,ulBindX,ulIdentity,plLen,pchData)	\
    (This)->lpVtbl -> fnGetInfosWithBindX(This,ulBindX,ulIdentity,plLen,pchData)

#define IOcfExtSink3_fnSetTraceMessage(This,pszTraceMessage)	\
    (This)->lpVtbl -> fnSetTraceMessage(This,pszTraceMessage)


#define IOcfExtSink3_fnOut2(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnOut2(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink3_fnPushRegEvent(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnPushRegEvent(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink3_fnPushUnregEvent(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnPushUnregEvent(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink3_fnPropagate(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnPropagate(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink3_fnQueryOcfExtSink(This,lServiceType,ppIOtherSink)	\
    (This)->lpVtbl -> fnQueryOcfExtSink(This,lServiceType,ppIOtherSink)

#define IOcfExtSink3_fnOutWithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)	\
    (This)->lpVtbl -> fnOutWithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)

#define IOcfExtSink3_fnOut2WithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)	\
    (This)->lpVtbl -> fnOut2WithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)

#define IOcfExtSink3_fnRegKey2(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnRegKey2(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink3_fnUnregKey2(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnUnregKey2(This,ulBindX,ulIdentity)

#define IOcfExtSink3_fnFetchAllSlots(This,puiLen,ppstData)	\
    (This)->lpVtbl -> fnFetchAllSlots(This,puiLen,ppstData)


#define IOcfExtSink3_fnOut3(This,ulArrays,aulBindX,aulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnOut3(This,ulArrays,aulBindX,aulIdentity,lLen,pchData)

#define IOcfExtSink3_fnOut4(This,ulLenOcfContext,pstOcfContext,lLen,pchData)	\
    (This)->lpVtbl -> fnOut4(This,ulLenOcfContext,pstOcfContext,lLen,pchData)

#define IOcfExtSink3_fnGetInitialPacketBufferSize(This,puiInitialPacketBufferSize)	\
    (This)->lpVtbl -> fnGetInitialPacketBufferSize(This,puiInitialPacketBufferSize)

#define IOcfExtSink3_fnGetKeyTableSize(This,puiKeyTableSize)	\
    (This)->lpVtbl -> fnGetKeyTableSize(This,puiKeyTableSize)

#define IOcfExtSink3_fnRegExtKey(This,ulBindX,ulIdentity,enumSeq,pszKeyString)	\
    (This)->lpVtbl -> fnRegExtKey(This,ulBindX,ulIdentity,enumSeq,pszKeyString)

#define IOcfExtSink3_fnUnregExtKey(This,ulBindX,ulIdentity,enumSeq)	\
    (This)->lpVtbl -> fnUnregExtKey(This,ulBindX,ulIdentity,enumSeq)

#define IOcfExtSink3_fnFindBindXWithExtKey(This,pulBindX,pulIdentity,enumSeq,pszKeyString)	\
    (This)->lpVtbl -> fnFindBindXWithExtKey(This,pulBindX,pulIdentity,enumSeq,pszKeyString)

#define IOcfExtSink3_fnFindExtKeyWithBindX(This,ulBindX,ulIdentity,enumSeq,ulMaxLenRet,plLenRet,pszKeyString)	\
    (This)->lpVtbl -> fnFindExtKeyWithBindX(This,ulBindX,ulIdentity,enumSeq,ulMaxLenRet,plLenRet,pszKeyString)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfExtSink3_fnOut3_Proxy( 
    IOcfExtSink3 * This,
    /* [in] */ ULONG ulArrays,
    /* [max_is][in] */ ULONG aulBindX[  ],
    /* [max_is][in] */ ULONG aulIdentity[  ],
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink3_fnOut3_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink3_fnOut4_Proxy( 
    IOcfExtSink3 * This,
    /* [in] */ ULONG ulLenOcfContext,
    /* [max_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink3_fnOut4_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink3_fnGetInitialPacketBufferSize_Proxy( 
    IOcfExtSink3 * This,
    /* [out] */ USHORT *puiInitialPacketBufferSize);


void __RPC_STUB IOcfExtSink3_fnGetInitialPacketBufferSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink3_fnGetKeyTableSize_Proxy( 
    IOcfExtSink3 * This,
    /* [out] */ USHORT *puiKeyTableSize);


void __RPC_STUB IOcfExtSink3_fnGetKeyTableSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink3_fnRegExtKey_Proxy( 
    IOcfExtSink3 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ OBJ_SEQ enumSeq,
    /* [string][in] */ unsigned char *pszKeyString);


void __RPC_STUB IOcfExtSink3_fnRegExtKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink3_fnUnregExtKey_Proxy( 
    IOcfExtSink3 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ OBJ_SEQ enumSeq);


void __RPC_STUB IOcfExtSink3_fnUnregExtKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink3_fnFindBindXWithExtKey_Proxy( 
    IOcfExtSink3 * This,
    /* [out] */ ULONG *pulBindX,
    /* [out] */ ULONG *pulIdentity,
    /* [in] */ OBJ_SEQ enumSeq,
    /* [in] */ unsigned char *pszKeyString);


void __RPC_STUB IOcfExtSink3_fnFindBindXWithExtKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink3_fnFindExtKeyWithBindX_Proxy( 
    IOcfExtSink3 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ OBJ_SEQ enumSeq,
    /* [in] */ ULONG ulMaxLenRet,
    /* [out] */ LONG *plLenRet,
    /* [length_is][size_is][out] */ unsigned char *pszKeyString);


void __RPC_STUB IOcfExtSink3_fnFindExtKeyWithBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfExtSink3_INTERFACE_DEFINED__ */


#ifndef __IOcfExtSink4_INTERFACE_DEFINED__
#define __IOcfExtSink4_INTERFACE_DEFINED__

/* interface IOcfExtSink4 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfExtSink4;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E5B449D9-DB14-4862-BF55-B69A13F44E46")
    IOcfExtSink4 : public IOcfExtSink3
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnOut3WithServiceType( 
            /* [in] */ ULONG ulArrays,
            /* [max_is][in] */ ULONG aulBindX[  ],
            /* [max_is][in] */ ULONG aulIdentity[  ],
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnOut4WithServiceType( 
            /* [in] */ ULONG ulLenOcfContext,
            /* [max_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetConfigInfoOfContainer( 
            /* [out] */ USHORT *puiServerID,
            /* [out] */ USHORT *puiServicePort,
            /* [out] */ USHORT *puiThreadsForIocp,
            /* [out] */ USHORT *puiAcceptForClient,
            /* [out] */ USHORT *puiConcurrentUsers,
            /* [out] */ LONG *plIdleTime,
            /* [out] */ LONG *plSendingIdleTime,
            /* [out] */ USHORT *puiSegmentSize,
            /* [out] */ LONG *pbNagle,
            /* [out] */ USHORT *puiKeyTableSize,
            /* [out] */ USHORT *puiInitialPacketBufferSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfExtSink4Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfExtSink4 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfExtSink4 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfExtSink4 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnQueryOcfExt )( 
            IOcfExtSink4 * This,
            /* [in] */ LONG lServiceType,
            /* [out] */ IOcfExt **ppIOther);
        
        HRESULT ( STDMETHODCALLTYPE *fnRegKey )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnregKey )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindBindXWithKey )( 
            IOcfExtSink4 * This,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindKeyWithBindX )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ ULONG *pulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindIpWithBindX )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pszIp);
        
        HRESULT ( STDMETHODCALLTYPE *fnKillBindX )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetInfosWithBindX )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetInfosWithBindX )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetTraceMessage )( 
            IOcfExtSink4 * This,
            /* [string][in] */ unsigned char *pszTraceMessage);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut2 )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnPushRegEvent )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnPushUnregEvent )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnPropagate )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnQueryOcfExtSink )( 
            IOcfExtSink4 * This,
            /* [in] */ LONG lServiceType,
            /* [out] */ IOcfExtSink **ppIOtherSink);
        
        HRESULT ( STDMETHODCALLTYPE *fnOutWithServiceType )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut2WithServiceType )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnRegKey2 )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnregKey2 )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnFetchAllSlots )( 
            IOcfExtSink4 * This,
            /* [out][in] */ UINT *puiLen,
            /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut3 )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulArrays,
            /* [max_is][in] */ ULONG aulBindX[  ],
            /* [max_is][in] */ ULONG aulIdentity[  ],
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut4 )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulLenOcfContext,
            /* [max_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetInitialPacketBufferSize )( 
            IOcfExtSink4 * This,
            /* [out] */ USHORT *puiInitialPacketBufferSize);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetKeyTableSize )( 
            IOcfExtSink4 * This,
            /* [out] */ USHORT *puiKeyTableSize);
        
        HRESULT ( STDMETHODCALLTYPE *fnRegExtKey )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [string][in] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnregExtKey )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindBindXWithExtKey )( 
            IOcfExtSink4 * This,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnFindExtKeyWithBindX )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut3WithServiceType )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulArrays,
            /* [max_is][in] */ ULONG aulBindX[  ],
            /* [max_is][in] */ ULONG aulIdentity[  ],
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnOut4WithServiceType )( 
            IOcfExtSink4 * This,
            /* [in] */ ULONG ulLenOcfContext,
            /* [max_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetConfigInfoOfContainer )( 
            IOcfExtSink4 * This,
            /* [out] */ USHORT *puiServerID,
            /* [out] */ USHORT *puiServicePort,
            /* [out] */ USHORT *puiThreadsForIocp,
            /* [out] */ USHORT *puiAcceptForClient,
            /* [out] */ USHORT *puiConcurrentUsers,
            /* [out] */ LONG *plIdleTime,
            /* [out] */ LONG *plSendingIdleTime,
            /* [out] */ USHORT *puiSegmentSize,
            /* [out] */ LONG *pbNagle,
            /* [out] */ USHORT *puiKeyTableSize,
            /* [out] */ USHORT *puiInitialPacketBufferSize);
        
        END_INTERFACE
    } IOcfExtSink4Vtbl;

    interface IOcfExtSink4
    {
        CONST_VTBL struct IOcfExtSink4Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfExtSink4_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfExtSink4_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfExtSink4_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfExtSink4_fnOut(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnOut(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink4_fnQueryOcfExt(This,lServiceType,ppIOther)	\
    (This)->lpVtbl -> fnQueryOcfExt(This,lServiceType,ppIOther)

#define IOcfExtSink4_fnRegKey(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnRegKey(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink4_fnUnregKey(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnUnregKey(This,ulBindX,ulIdentity)

#define IOcfExtSink4_fnFindBindXWithKey(This,pulBindX,pulIdentity,ulKey)	\
    (This)->lpVtbl -> fnFindBindXWithKey(This,pulBindX,pulIdentity,ulKey)

#define IOcfExtSink4_fnFindKeyWithBindX(This,ulBindX,ulIdentity,pulKey)	\
    (This)->lpVtbl -> fnFindKeyWithBindX(This,ulBindX,ulIdentity,pulKey)

#define IOcfExtSink4_fnFindIpWithBindX(This,ulBindX,ulIdentity,plLen,pszIp)	\
    (This)->lpVtbl -> fnFindIpWithBindX(This,ulBindX,ulIdentity,plLen,pszIp)

#define IOcfExtSink4_fnKillBindX(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnKillBindX(This,ulBindX,ulIdentity)

#define IOcfExtSink4_fnSetInfosWithBindX(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnSetInfosWithBindX(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink4_fnGetInfosWithBindX(This,ulBindX,ulIdentity,plLen,pchData)	\
    (This)->lpVtbl -> fnGetInfosWithBindX(This,ulBindX,ulIdentity,plLen,pchData)

#define IOcfExtSink4_fnSetTraceMessage(This,pszTraceMessage)	\
    (This)->lpVtbl -> fnSetTraceMessage(This,pszTraceMessage)


#define IOcfExtSink4_fnOut2(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnOut2(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink4_fnPushRegEvent(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnPushRegEvent(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink4_fnPushUnregEvent(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnPushUnregEvent(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink4_fnPropagate(This,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnPropagate(This,ulBindX,ulIdentity,lLen,pchData)

#define IOcfExtSink4_fnQueryOcfExtSink(This,lServiceType,ppIOtherSink)	\
    (This)->lpVtbl -> fnQueryOcfExtSink(This,lServiceType,ppIOtherSink)

#define IOcfExtSink4_fnOutWithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)	\
    (This)->lpVtbl -> fnOutWithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)

#define IOcfExtSink4_fnOut2WithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)	\
    (This)->lpVtbl -> fnOut2WithServiceType(This,ulBindX,ulIdentity,byServiceType,lLen,pchData)

#define IOcfExtSink4_fnRegKey2(This,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnRegKey2(This,ulBindX,ulIdentity,ulKey)

#define IOcfExtSink4_fnUnregKey2(This,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnUnregKey2(This,ulBindX,ulIdentity)

#define IOcfExtSink4_fnFetchAllSlots(This,puiLen,ppstData)	\
    (This)->lpVtbl -> fnFetchAllSlots(This,puiLen,ppstData)


#define IOcfExtSink4_fnOut3(This,ulArrays,aulBindX,aulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnOut3(This,ulArrays,aulBindX,aulIdentity,lLen,pchData)

#define IOcfExtSink4_fnOut4(This,ulLenOcfContext,pstOcfContext,lLen,pchData)	\
    (This)->lpVtbl -> fnOut4(This,ulLenOcfContext,pstOcfContext,lLen,pchData)

#define IOcfExtSink4_fnGetInitialPacketBufferSize(This,puiInitialPacketBufferSize)	\
    (This)->lpVtbl -> fnGetInitialPacketBufferSize(This,puiInitialPacketBufferSize)

#define IOcfExtSink4_fnGetKeyTableSize(This,puiKeyTableSize)	\
    (This)->lpVtbl -> fnGetKeyTableSize(This,puiKeyTableSize)

#define IOcfExtSink4_fnRegExtKey(This,ulBindX,ulIdentity,enumSeq,pszKeyString)	\
    (This)->lpVtbl -> fnRegExtKey(This,ulBindX,ulIdentity,enumSeq,pszKeyString)

#define IOcfExtSink4_fnUnregExtKey(This,ulBindX,ulIdentity,enumSeq)	\
    (This)->lpVtbl -> fnUnregExtKey(This,ulBindX,ulIdentity,enumSeq)

#define IOcfExtSink4_fnFindBindXWithExtKey(This,pulBindX,pulIdentity,enumSeq,pszKeyString)	\
    (This)->lpVtbl -> fnFindBindXWithExtKey(This,pulBindX,pulIdentity,enumSeq,pszKeyString)

#define IOcfExtSink4_fnFindExtKeyWithBindX(This,ulBindX,ulIdentity,enumSeq,ulMaxLenRet,plLenRet,pszKeyString)	\
    (This)->lpVtbl -> fnFindExtKeyWithBindX(This,ulBindX,ulIdentity,enumSeq,ulMaxLenRet,plLenRet,pszKeyString)


#define IOcfExtSink4_fnOut3WithServiceType(This,ulArrays,aulBindX,aulIdentity,byServiceType,lLen,pchData)	\
    (This)->lpVtbl -> fnOut3WithServiceType(This,ulArrays,aulBindX,aulIdentity,byServiceType,lLen,pchData)

#define IOcfExtSink4_fnOut4WithServiceType(This,ulLenOcfContext,pstOcfContext,byServiceType,lLen,pchData)	\
    (This)->lpVtbl -> fnOut4WithServiceType(This,ulLenOcfContext,pstOcfContext,byServiceType,lLen,pchData)

#define IOcfExtSink4_fnGetConfigInfoOfContainer(This,puiServerID,puiServicePort,puiThreadsForIocp,puiAcceptForClient,puiConcurrentUsers,plIdleTime,plSendingIdleTime,puiSegmentSize,pbNagle,puiKeyTableSize,puiInitialPacketBufferSize)	\
    (This)->lpVtbl -> fnGetConfigInfoOfContainer(This,puiServerID,puiServicePort,puiThreadsForIocp,puiAcceptForClient,puiConcurrentUsers,plIdleTime,plSendingIdleTime,puiSegmentSize,pbNagle,puiKeyTableSize,puiInitialPacketBufferSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfExtSink4_fnOut3WithServiceType_Proxy( 
    IOcfExtSink4 * This,
    /* [in] */ ULONG ulArrays,
    /* [max_is][in] */ ULONG aulBindX[  ],
    /* [max_is][in] */ ULONG aulIdentity[  ],
    /* [in] */ BYTE byServiceType,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink4_fnOut3WithServiceType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink4_fnOut4WithServiceType_Proxy( 
    IOcfExtSink4 * This,
    /* [in] */ ULONG ulLenOcfContext,
    /* [max_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
    /* [in] */ BYTE byServiceType,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfExtSink4_fnOut4WithServiceType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExtSink4_fnGetConfigInfoOfContainer_Proxy( 
    IOcfExtSink4 * This,
    /* [out] */ USHORT *puiServerID,
    /* [out] */ USHORT *puiServicePort,
    /* [out] */ USHORT *puiThreadsForIocp,
    /* [out] */ USHORT *puiAcceptForClient,
    /* [out] */ USHORT *puiConcurrentUsers,
    /* [out] */ LONG *plIdleTime,
    /* [out] */ LONG *plSendingIdleTime,
    /* [out] */ USHORT *puiSegmentSize,
    /* [out] */ LONG *pbNagle,
    /* [out] */ USHORT *puiKeyTableSize,
    /* [out] */ USHORT *puiInitialPacketBufferSize);


void __RPC_STUB IOcfExtSink4_fnGetConfigInfoOfContainer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfExtSink4_INTERFACE_DEFINED__ */


#ifndef __IOcfDistributor_INTERFACE_DEFINED__
#define __IOcfDistributor_INTERFACE_DEFINED__

/* interface IOcfDistributor */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfDistributor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F4A4422D-6106-43c1-ADE6-1490BE4F665E")
    IOcfDistributor : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnDin( 
            /* [in] */ BYTE byToServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDout( 
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDin2( 
            /* [in] */ BYTE byToServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDout2( 
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDregKey( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDunregKey( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDfindBindXWithKey( 
            /* [out] */ BYTE *pbyServiceType,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG ulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDfindKeyWithBindX( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ ULONG *pulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDfindIpWithBindX( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pszIp) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDkillBindX( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDsetInfosWithBindX( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDgetInfosWithBindX( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDpropagate( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfDistributorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfDistributor * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfDistributor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfDistributor * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnDin )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byToServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDout )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDin2 )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byToServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDout2 )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDregKey )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDunregKey )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindBindXWithKey )( 
            IOcfDistributor * This,
            /* [out] */ BYTE *pbyServiceType,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindKeyWithBindX )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ ULONG *pulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindIpWithBindX )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pszIp);
        
        HRESULT ( STDMETHODCALLTYPE *fnDkillBindX )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnDsetInfosWithBindX )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDgetInfosWithBindX )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDpropagate )( 
            IOcfDistributor * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        END_INTERFACE
    } IOcfDistributorVtbl;

    interface IOcfDistributor
    {
        CONST_VTBL struct IOcfDistributorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfDistributor_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfDistributor_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfDistributor_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfDistributor_fnDin(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDin(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor_fnDout(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDout(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor_fnDin2(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDin2(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor_fnDout2(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDout2(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor_fnDregKey(This,byServiceType,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnDregKey(This,byServiceType,ulBindX,ulIdentity,ulKey)

#define IOcfDistributor_fnDunregKey(This,byServiceType,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnDunregKey(This,byServiceType,ulBindX,ulIdentity)

#define IOcfDistributor_fnDfindBindXWithKey(This,pbyServiceType,pulBindX,pulIdentity,ulKey)	\
    (This)->lpVtbl -> fnDfindBindXWithKey(This,pbyServiceType,pulBindX,pulIdentity,ulKey)

#define IOcfDistributor_fnDfindKeyWithBindX(This,byServiceType,ulBindX,ulIdentity,pulKey)	\
    (This)->lpVtbl -> fnDfindKeyWithBindX(This,byServiceType,ulBindX,ulIdentity,pulKey)

#define IOcfDistributor_fnDfindIpWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pszIp)	\
    (This)->lpVtbl -> fnDfindIpWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pszIp)

#define IOcfDistributor_fnDkillBindX(This,byServiceType,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnDkillBindX(This,byServiceType,ulBindX,ulIdentity)

#define IOcfDistributor_fnDsetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDsetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)

#define IOcfDistributor_fnDgetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pchData)	\
    (This)->lpVtbl -> fnDgetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pchData)

#define IOcfDistributor_fnDpropagate(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDpropagate(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDin_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byToServiceType,
    /* [in] */ ULONG ulToBindX,
    /* [in] */ ULONG ulToIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfDistributor_fnDin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDout_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byFromServiceType,
    /* [in] */ ULONG ulToBindX,
    /* [in] */ ULONG ulToIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfDistributor_fnDout_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDin2_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byToServiceType,
    /* [in] */ ULONG ulToBindX,
    /* [in] */ ULONG ulToIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfDistributor_fnDin2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDout2_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byFromServiceType,
    /* [in] */ ULONG ulToBindX,
    /* [in] */ ULONG ulToIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfDistributor_fnDout2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDregKey_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ ULONG ulKey);


void __RPC_STUB IOcfDistributor_fnDregKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDunregKey_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity);


void __RPC_STUB IOcfDistributor_fnDunregKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDfindBindXWithKey_Proxy( 
    IOcfDistributor * This,
    /* [out] */ BYTE *pbyServiceType,
    /* [out] */ ULONG *pulBindX,
    /* [out] */ ULONG *pulIdentity,
    /* [in] */ ULONG ulKey);


void __RPC_STUB IOcfDistributor_fnDfindBindXWithKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDfindKeyWithBindX_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [out] */ ULONG *pulKey);


void __RPC_STUB IOcfDistributor_fnDfindKeyWithBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDfindIpWithBindX_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [out][in] */ LONG *plLen,
    /* [size_is][out] */ unsigned char *pszIp);


void __RPC_STUB IOcfDistributor_fnDfindIpWithBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDkillBindX_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity);


void __RPC_STUB IOcfDistributor_fnDkillBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDsetInfosWithBindX_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfDistributor_fnDsetInfosWithBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDgetInfosWithBindX_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [out][in] */ LONG *plLen,
    /* [size_is][out] */ unsigned char *pchData);


void __RPC_STUB IOcfDistributor_fnDgetInfosWithBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor_fnDpropagate_Proxy( 
    IOcfDistributor * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfDistributor_fnDpropagate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfDistributor_INTERFACE_DEFINED__ */


#ifndef __IOcfDistributor2_INTERFACE_DEFINED__
#define __IOcfDistributor2_INTERFACE_DEFINED__

/* interface IOcfDistributor2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfDistributor2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A7FCA51A-4047-430c-98C3-BEFD2C410BD4")
    IOcfDistributor2 : public IOcfDistributor
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnDin4( 
            /* [in] */ USHORT uiServerID,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDout4( 
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulLenOcfContext,
            /* [size_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDrequestAnything( 
            /* [in] */ USHORT uiServerID,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulTimeout,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDqueryServerIDs( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][max_is][out] */ USHORT *puiServerIDs) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDrequestAnythingWithAsync( 
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ USHORT uiToServerID,
            /* [in] */ BYTE byToServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDregDsinkInterface( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDunregDsinkInterface( 
            /* [in] */ BYTE byServiceType) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDunregKey2( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDregExtKey( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [string][in] */ unsigned char *pszKeyString) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDunregExtKey( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDfindBindXWithExtKey( 
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ unsigned char *pszKeyString) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDfindExtKeyWithBindX( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pszKeyString) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDGetServerID( 
            /* [out] */ USHORT *puiServerID) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfDistributor2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfDistributor2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfDistributor2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfDistributor2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnDin )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byToServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDout )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDin2 )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byToServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDout2 )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDregKey )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDunregKey )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindBindXWithKey )( 
            IOcfDistributor2 * This,
            /* [out] */ BYTE *pbyServiceType,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindKeyWithBindX )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ ULONG *pulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindIpWithBindX )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pszIp);
        
        HRESULT ( STDMETHODCALLTYPE *fnDkillBindX )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnDsetInfosWithBindX )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDgetInfosWithBindX )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDpropagate )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDin4 )( 
            IOcfDistributor2 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDout4 )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulLenOcfContext,
            /* [size_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDrequestAnything )( 
            IOcfDistributor2 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulTimeout,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet);
        
        HRESULT ( STDMETHODCALLTYPE *fnDqueryServerIDs )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][max_is][out] */ USHORT *puiServerIDs);
        
        HRESULT ( STDMETHODCALLTYPE *fnDrequestAnythingWithAsync )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ USHORT uiToServerID,
            /* [in] */ BYTE byToServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet);
        
        HRESULT ( STDMETHODCALLTYPE *fnDregDsinkInterface )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink);
        
        HRESULT ( STDMETHODCALLTYPE *fnDunregDsinkInterface )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType);
        
        HRESULT ( STDMETHODCALLTYPE *fnDunregKey2 )( 
            IOcfDistributor2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDregExtKey )( 
            IOcfDistributor2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [string][in] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnDunregExtKey )( 
            IOcfDistributor2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindBindXWithExtKey )( 
            IOcfDistributor2 * This,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindExtKeyWithBindX )( 
            IOcfDistributor2 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnDGetServerID )( 
            IOcfDistributor2 * This,
            /* [out] */ USHORT *puiServerID);
        
        END_INTERFACE
    } IOcfDistributor2Vtbl;

    interface IOcfDistributor2
    {
        CONST_VTBL struct IOcfDistributor2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfDistributor2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfDistributor2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfDistributor2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfDistributor2_fnDin(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDin(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor2_fnDout(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDout(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor2_fnDin2(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDin2(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor2_fnDout2(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDout2(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor2_fnDregKey(This,byServiceType,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnDregKey(This,byServiceType,ulBindX,ulIdentity,ulKey)

#define IOcfDistributor2_fnDunregKey(This,byServiceType,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnDunregKey(This,byServiceType,ulBindX,ulIdentity)

#define IOcfDistributor2_fnDfindBindXWithKey(This,pbyServiceType,pulBindX,pulIdentity,ulKey)	\
    (This)->lpVtbl -> fnDfindBindXWithKey(This,pbyServiceType,pulBindX,pulIdentity,ulKey)

#define IOcfDistributor2_fnDfindKeyWithBindX(This,byServiceType,ulBindX,ulIdentity,pulKey)	\
    (This)->lpVtbl -> fnDfindKeyWithBindX(This,byServiceType,ulBindX,ulIdentity,pulKey)

#define IOcfDistributor2_fnDfindIpWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pszIp)	\
    (This)->lpVtbl -> fnDfindIpWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pszIp)

#define IOcfDistributor2_fnDkillBindX(This,byServiceType,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnDkillBindX(This,byServiceType,ulBindX,ulIdentity)

#define IOcfDistributor2_fnDsetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDsetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)

#define IOcfDistributor2_fnDgetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pchData)	\
    (This)->lpVtbl -> fnDgetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pchData)

#define IOcfDistributor2_fnDpropagate(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDpropagate(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)


#define IOcfDistributor2_fnDin4(This,uiServerID,byServiceType,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDin4(This,uiServerID,byServiceType,ulBindX,ulIdentity,lLen,pchData)

#define IOcfDistributor2_fnDout4(This,byFromServiceType,ulLenOcfContext,pstOcfContext,lLen,pchData)	\
    (This)->lpVtbl -> fnDout4(This,byFromServiceType,ulLenOcfContext,pstOcfContext,lLen,pchData)

#define IOcfDistributor2_fnDrequestAnything(This,uiServerID,byServiceType,ulTimeout,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)	\
    (This)->lpVtbl -> fnDrequestAnything(This,uiServerID,byServiceType,ulTimeout,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)

#define IOcfDistributor2_fnDqueryServerIDs(This,byServiceType,ulMaxLenRet,plLenRet,puiServerIDs)	\
    (This)->lpVtbl -> fnDqueryServerIDs(This,byServiceType,ulMaxLenRet,plLenRet,puiServerIDs)

#define IOcfDistributor2_fnDrequestAnythingWithAsync(This,byFromServiceType,uiToServerID,byToServiceType,lLenQuery,pchQuery,ulMaxLenRet)	\
    (This)->lpVtbl -> fnDrequestAnythingWithAsync(This,byFromServiceType,uiToServerID,byToServiceType,lLenQuery,pchQuery,ulMaxLenRet)

#define IOcfDistributor2_fnDregDsinkInterface(This,byServiceType,pISink)	\
    (This)->lpVtbl -> fnDregDsinkInterface(This,byServiceType,pISink)

#define IOcfDistributor2_fnDunregDsinkInterface(This,byServiceType)	\
    (This)->lpVtbl -> fnDunregDsinkInterface(This,byServiceType)

#define IOcfDistributor2_fnDunregKey2(This,byServiceType,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnDunregKey2(This,byServiceType,ulBindX,ulIdentity,ulKey)

#define IOcfDistributor2_fnDregExtKey(This,ulBindX,ulIdentity,enumSeq,pszKeyString)	\
    (This)->lpVtbl -> fnDregExtKey(This,ulBindX,ulIdentity,enumSeq,pszKeyString)

#define IOcfDistributor2_fnDunregExtKey(This,ulBindX,ulIdentity,enumSeq)	\
    (This)->lpVtbl -> fnDunregExtKey(This,ulBindX,ulIdentity,enumSeq)

#define IOcfDistributor2_fnDfindBindXWithExtKey(This,pulBindX,pulIdentity,enumSeq,pszKeyString)	\
    (This)->lpVtbl -> fnDfindBindXWithExtKey(This,pulBindX,pulIdentity,enumSeq,pszKeyString)

#define IOcfDistributor2_fnDfindExtKeyWithBindX(This,ulBindX,ulIdentity,enumSeq,ulMaxLenRet,plLenRet,pszKeyString)	\
    (This)->lpVtbl -> fnDfindExtKeyWithBindX(This,ulBindX,ulIdentity,enumSeq,ulMaxLenRet,plLenRet,pszKeyString)

#define IOcfDistributor2_fnDGetServerID(This,puiServerID)	\
    (This)->lpVtbl -> fnDGetServerID(This,puiServerID)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDin4_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ USHORT uiServerID,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfDistributor2_fnDin4_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDout4_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ BYTE byFromServiceType,
    /* [in] */ ULONG ulLenOcfContext,
    /* [size_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData);


void __RPC_STUB IOcfDistributor2_fnDout4_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDrequestAnything_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ USHORT uiServerID,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulTimeout,
    /* [in] */ LONG lLenQuery,
    /* [size_is][in] */ unsigned char *pchQuery,
    /* [in] */ ULONG ulMaxLenRet,
    /* [out] */ LONG *plLenRet,
    /* [length_is][size_is][out] */ unsigned char *pchRet);


void __RPC_STUB IOcfDistributor2_fnDrequestAnything_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDqueryServerIDs_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulMaxLenRet,
    /* [out] */ LONG *plLenRet,
    /* [length_is][max_is][out] */ USHORT *puiServerIDs);


void __RPC_STUB IOcfDistributor2_fnDqueryServerIDs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDrequestAnythingWithAsync_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ BYTE byFromServiceType,
    /* [in] */ USHORT uiToServerID,
    /* [in] */ BYTE byToServiceType,
    /* [in] */ LONG lLenQuery,
    /* [size_is][in] */ unsigned char *pchQuery,
    /* [in] */ ULONG ulMaxLenRet);


void __RPC_STUB IOcfDistributor2_fnDrequestAnythingWithAsync_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDregDsinkInterface_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ IUnknown *pISink);


void __RPC_STUB IOcfDistributor2_fnDregDsinkInterface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDunregDsinkInterface_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ BYTE byServiceType);


void __RPC_STUB IOcfDistributor2_fnDunregDsinkInterface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDunregKey2_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ ULONG ulKey);


void __RPC_STUB IOcfDistributor2_fnDunregKey2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDregExtKey_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ OBJ_SEQ enumSeq,
    /* [string][in] */ unsigned char *pszKeyString);


void __RPC_STUB IOcfDistributor2_fnDregExtKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDunregExtKey_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ OBJ_SEQ enumSeq);


void __RPC_STUB IOcfDistributor2_fnDunregExtKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDfindBindXWithExtKey_Proxy( 
    IOcfDistributor2 * This,
    /* [out] */ ULONG *pulBindX,
    /* [out] */ ULONG *pulIdentity,
    /* [in] */ OBJ_SEQ enumSeq,
    /* [in] */ unsigned char *pszKeyString);


void __RPC_STUB IOcfDistributor2_fnDfindBindXWithExtKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDfindExtKeyWithBindX_Proxy( 
    IOcfDistributor2 * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ OBJ_SEQ enumSeq,
    /* [in] */ ULONG ulMaxLenRet,
    /* [out] */ LONG *plLenRet,
    /* [length_is][size_is][out] */ unsigned char *pszKeyString);


void __RPC_STUB IOcfDistributor2_fnDfindExtKeyWithBindX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor2_fnDGetServerID_Proxy( 
    IOcfDistributor2 * This,
    /* [out] */ USHORT *puiServerID);


void __RPC_STUB IOcfDistributor2_fnDGetServerID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfDistributor2_INTERFACE_DEFINED__ */


#ifndef __IOcfDistributor3_INTERFACE_DEFINED__
#define __IOcfDistributor3_INTERFACE_DEFINED__

/* interface IOcfDistributor3 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfDistributor3;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("21C16283-EC63-4002-88AD-483461BAB6A8")
    IOcfDistributor3 : public IOcfDistributor2
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnDfetchAllSlots( 
            /* [out][in] */ ULONG *pulLen,
            /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDfetchAllSlotsOfServer( 
            /* [in] */ USHORT uiServerID,
            /* [out][in] */ UINT *puiLen,
            /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDqueryAllServerIDs( 
            /* [out][in] */ ULONG *pulLen,
            /* [length_is][max_is][out] */ USHORT **ppuiServerIDs) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfDistributor3Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfDistributor3 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfDistributor3 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfDistributor3 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnDin )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byToServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDout )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDin2 )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byToServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDout2 )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulToBindX,
            /* [in] */ ULONG ulToIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDregKey )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDunregKey )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindBindXWithKey )( 
            IOcfDistributor3 * This,
            /* [out] */ BYTE *pbyServiceType,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindKeyWithBindX )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ ULONG *pulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindIpWithBindX )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pszIp);
        
        HRESULT ( STDMETHODCALLTYPE *fnDkillBindX )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnDsetInfosWithBindX )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDgetInfosWithBindX )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDpropagate )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDin4 )( 
            IOcfDistributor3 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDout4 )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ ULONG ulLenOcfContext,
            /* [size_is][out] */ OCFEX_SESSION_CONTEXT *pstOcfContext,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDrequestAnything )( 
            IOcfDistributor3 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulTimeout,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pchRet);
        
        HRESULT ( STDMETHODCALLTYPE *fnDqueryServerIDs )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][max_is][out] */ USHORT *puiServerIDs);
        
        HRESULT ( STDMETHODCALLTYPE *fnDrequestAnythingWithAsync )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byFromServiceType,
            /* [in] */ USHORT uiToServerID,
            /* [in] */ BYTE byToServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet);
        
        HRESULT ( STDMETHODCALLTYPE *fnDregDsinkInterface )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ IUnknown *pISink);
        
        HRESULT ( STDMETHODCALLTYPE *fnDunregDsinkInterface )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType);
        
        HRESULT ( STDMETHODCALLTYPE *fnDunregKey2 )( 
            IOcfDistributor3 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey);
        
        HRESULT ( STDMETHODCALLTYPE *fnDregExtKey )( 
            IOcfDistributor3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [string][in] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnDunregExtKey )( 
            IOcfDistributor3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindBindXWithExtKey )( 
            IOcfDistributor3 * This,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfindExtKeyWithBindX )( 
            IOcfDistributor3 * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ OBJ_SEQ enumSeq,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][size_is][out] */ unsigned char *pszKeyString);
        
        HRESULT ( STDMETHODCALLTYPE *fnDGetServerID )( 
            IOcfDistributor3 * This,
            /* [out] */ USHORT *puiServerID);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfetchAllSlots )( 
            IOcfDistributor3 * This,
            /* [out][in] */ ULONG *pulLen,
            /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDfetchAllSlotsOfServer )( 
            IOcfDistributor3 * This,
            /* [in] */ USHORT uiServerID,
            /* [out][in] */ UINT *puiLen,
            /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData);
        
        HRESULT ( STDMETHODCALLTYPE *fnDqueryAllServerIDs )( 
            IOcfDistributor3 * This,
            /* [out][in] */ ULONG *pulLen,
            /* [length_is][max_is][out] */ USHORT **ppuiServerIDs);
        
        END_INTERFACE
    } IOcfDistributor3Vtbl;

    interface IOcfDistributor3
    {
        CONST_VTBL struct IOcfDistributor3Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfDistributor3_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfDistributor3_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfDistributor3_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfDistributor3_fnDin(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDin(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor3_fnDout(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDout(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor3_fnDin2(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDin2(This,byToServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor3_fnDout2(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDout2(This,byFromServiceType,ulToBindX,ulToIdentity,lLen,pchData)

#define IOcfDistributor3_fnDregKey(This,byServiceType,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnDregKey(This,byServiceType,ulBindX,ulIdentity,ulKey)

#define IOcfDistributor3_fnDunregKey(This,byServiceType,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnDunregKey(This,byServiceType,ulBindX,ulIdentity)

#define IOcfDistributor3_fnDfindBindXWithKey(This,pbyServiceType,pulBindX,pulIdentity,ulKey)	\
    (This)->lpVtbl -> fnDfindBindXWithKey(This,pbyServiceType,pulBindX,pulIdentity,ulKey)

#define IOcfDistributor3_fnDfindKeyWithBindX(This,byServiceType,ulBindX,ulIdentity,pulKey)	\
    (This)->lpVtbl -> fnDfindKeyWithBindX(This,byServiceType,ulBindX,ulIdentity,pulKey)

#define IOcfDistributor3_fnDfindIpWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pszIp)	\
    (This)->lpVtbl -> fnDfindIpWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pszIp)

#define IOcfDistributor3_fnDkillBindX(This,byServiceType,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnDkillBindX(This,byServiceType,ulBindX,ulIdentity)

#define IOcfDistributor3_fnDsetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDsetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)

#define IOcfDistributor3_fnDgetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pchData)	\
    (This)->lpVtbl -> fnDgetInfosWithBindX(This,byServiceType,ulBindX,ulIdentity,plLen,pchData)

#define IOcfDistributor3_fnDpropagate(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDpropagate(This,byServiceType,ulBindX,ulIdentity,lLen,pchData)


#define IOcfDistributor3_fnDin4(This,uiServerID,byServiceType,ulBindX,ulIdentity,lLen,pchData)	\
    (This)->lpVtbl -> fnDin4(This,uiServerID,byServiceType,ulBindX,ulIdentity,lLen,pchData)

#define IOcfDistributor3_fnDout4(This,byFromServiceType,ulLenOcfContext,pstOcfContext,lLen,pchData)	\
    (This)->lpVtbl -> fnDout4(This,byFromServiceType,ulLenOcfContext,pstOcfContext,lLen,pchData)

#define IOcfDistributor3_fnDrequestAnything(This,uiServerID,byServiceType,ulTimeout,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)	\
    (This)->lpVtbl -> fnDrequestAnything(This,uiServerID,byServiceType,ulTimeout,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)

#define IOcfDistributor3_fnDqueryServerIDs(This,byServiceType,ulMaxLenRet,plLenRet,puiServerIDs)	\
    (This)->lpVtbl -> fnDqueryServerIDs(This,byServiceType,ulMaxLenRet,plLenRet,puiServerIDs)

#define IOcfDistributor3_fnDrequestAnythingWithAsync(This,byFromServiceType,uiToServerID,byToServiceType,lLenQuery,pchQuery,ulMaxLenRet)	\
    (This)->lpVtbl -> fnDrequestAnythingWithAsync(This,byFromServiceType,uiToServerID,byToServiceType,lLenQuery,pchQuery,ulMaxLenRet)

#define IOcfDistributor3_fnDregDsinkInterface(This,byServiceType,pISink)	\
    (This)->lpVtbl -> fnDregDsinkInterface(This,byServiceType,pISink)

#define IOcfDistributor3_fnDunregDsinkInterface(This,byServiceType)	\
    (This)->lpVtbl -> fnDunregDsinkInterface(This,byServiceType)

#define IOcfDistributor3_fnDunregKey2(This,byServiceType,ulBindX,ulIdentity,ulKey)	\
    (This)->lpVtbl -> fnDunregKey2(This,byServiceType,ulBindX,ulIdentity,ulKey)

#define IOcfDistributor3_fnDregExtKey(This,ulBindX,ulIdentity,enumSeq,pszKeyString)	\
    (This)->lpVtbl -> fnDregExtKey(This,ulBindX,ulIdentity,enumSeq,pszKeyString)

#define IOcfDistributor3_fnDunregExtKey(This,ulBindX,ulIdentity,enumSeq)	\
    (This)->lpVtbl -> fnDunregExtKey(This,ulBindX,ulIdentity,enumSeq)

#define IOcfDistributor3_fnDfindBindXWithExtKey(This,pulBindX,pulIdentity,enumSeq,pszKeyString)	\
    (This)->lpVtbl -> fnDfindBindXWithExtKey(This,pulBindX,pulIdentity,enumSeq,pszKeyString)

#define IOcfDistributor3_fnDfindExtKeyWithBindX(This,ulBindX,ulIdentity,enumSeq,ulMaxLenRet,plLenRet,pszKeyString)	\
    (This)->lpVtbl -> fnDfindExtKeyWithBindX(This,ulBindX,ulIdentity,enumSeq,ulMaxLenRet,plLenRet,pszKeyString)

#define IOcfDistributor3_fnDGetServerID(This,puiServerID)	\
    (This)->lpVtbl -> fnDGetServerID(This,puiServerID)


#define IOcfDistributor3_fnDfetchAllSlots(This,pulLen,ppstData)	\
    (This)->lpVtbl -> fnDfetchAllSlots(This,pulLen,ppstData)

#define IOcfDistributor3_fnDfetchAllSlotsOfServer(This,uiServerID,puiLen,ppstData)	\
    (This)->lpVtbl -> fnDfetchAllSlotsOfServer(This,uiServerID,puiLen,ppstData)

#define IOcfDistributor3_fnDqueryAllServerIDs(This,pulLen,ppuiServerIDs)	\
    (This)->lpVtbl -> fnDqueryAllServerIDs(This,pulLen,ppuiServerIDs)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfDistributor3_fnDfetchAllSlots_Proxy( 
    IOcfDistributor3 * This,
    /* [out][in] */ ULONG *pulLen,
    /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData);


void __RPC_STUB IOcfDistributor3_fnDfetchAllSlots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor3_fnDfetchAllSlotsOfServer_Proxy( 
    IOcfDistributor3 * This,
    /* [in] */ USHORT uiServerID,
    /* [out][in] */ UINT *puiLen,
    /* [length_is][max_is][out] */ OCFEX_SESSION_CONTEXT **ppstData);


void __RPC_STUB IOcfDistributor3_fnDfetchAllSlotsOfServer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributor3_fnDqueryAllServerIDs_Proxy( 
    IOcfDistributor3 * This,
    /* [out][in] */ ULONG *pulLen,
    /* [length_is][max_is][out] */ USHORT **ppuiServerIDs);


void __RPC_STUB IOcfDistributor3_fnDqueryAllServerIDs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfDistributor3_INTERFACE_DEFINED__ */


#ifndef __IOcfDistributorSink_INTERFACE_DEFINED__
#define __IOcfDistributorSink_INTERFACE_DEFINED__

/* interface IOcfDistributorSink */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfDistributorSink;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7F8AA4F9-D113-409d-BFBB-80EAF3E6BC64")
    IOcfDistributorSink : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnDrequestAnythingResult( 
            /* [in] */ USHORT uiServerID,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ LONG lLenRet,
            /* [size_is][in] */ unsigned char *pchRet) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDnotifyNewService( 
            /* [in] */ USHORT uiServerID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDnotifyDelService( 
            /* [in] */ USHORT uiServerID) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfDistributorSinkVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfDistributorSink * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfDistributorSink * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfDistributorSink * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnDrequestAnythingResult )( 
            IOcfDistributorSink * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ LONG lLenRet,
            /* [size_is][in] */ unsigned char *pchRet);
        
        HRESULT ( STDMETHODCALLTYPE *fnDnotifyNewService )( 
            IOcfDistributorSink * This,
            /* [in] */ USHORT uiServerID);
        
        HRESULT ( STDMETHODCALLTYPE *fnDnotifyDelService )( 
            IOcfDistributorSink * This,
            /* [in] */ USHORT uiServerID);
        
        END_INTERFACE
    } IOcfDistributorSinkVtbl;

    interface IOcfDistributorSink
    {
        CONST_VTBL struct IOcfDistributorSinkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfDistributorSink_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfDistributorSink_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfDistributorSink_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfDistributorSink_fnDrequestAnythingResult(This,uiServerID,byServiceType,lLenQuery,pchQuery,lLenRet,pchRet)	\
    (This)->lpVtbl -> fnDrequestAnythingResult(This,uiServerID,byServiceType,lLenQuery,pchQuery,lLenRet,pchRet)

#define IOcfDistributorSink_fnDnotifyNewService(This,uiServerID)	\
    (This)->lpVtbl -> fnDnotifyNewService(This,uiServerID)

#define IOcfDistributorSink_fnDnotifyDelService(This,uiServerID)	\
    (This)->lpVtbl -> fnDnotifyDelService(This,uiServerID)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfDistributorSink_fnDrequestAnythingResult_Proxy( 
    IOcfDistributorSink * This,
    /* [in] */ USHORT uiServerID,
    /* [in] */ BYTE byServiceType,
    /* [in] */ LONG lLenQuery,
    /* [size_is][in] */ unsigned char *pchQuery,
    /* [in] */ LONG lLenRet,
    /* [size_is][in] */ unsigned char *pchRet);


void __RPC_STUB IOcfDistributorSink_fnDrequestAnythingResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributorSink_fnDnotifyNewService_Proxy( 
    IOcfDistributorSink * This,
    /* [in] */ USHORT uiServerID);


void __RPC_STUB IOcfDistributorSink_fnDnotifyNewService_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfDistributorSink_fnDnotifyDelService_Proxy( 
    IOcfDistributorSink * This,
    /* [in] */ USHORT uiServerID);


void __RPC_STUB IOcfDistributorSink_fnDnotifyDelService_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfDistributorSink_INTERFACE_DEFINED__ */


#ifndef __IOcfKeyQuery_INTERFACE_DEFINED__
#define __IOcfKeyQuery_INTERFACE_DEFINED__

/* interface IOcfKeyQuery */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfKeyQuery;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("83F7A8C5-D1B2-48fd-994B-7FD66C577315")
    IOcfKeyQuery : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnRegName( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLenName,
            /* [size_is][in] */ unsigned char *pchName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnUnregName( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnKeyQuery( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnReverseKeyQuery( 
            /* [in] */ LONG lLenName,
            /* [size_is][in] */ unsigned char *pszName,
            /* [out] */ BYTE *pbyServiceType,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG *pulKey) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfKeyQueryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfKeyQuery * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfKeyQuery * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfKeyQuery * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnRegName )( 
            IOcfKeyQuery * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ LONG lLenName,
            /* [size_is][in] */ unsigned char *pchName);
        
        HRESULT ( STDMETHODCALLTYPE *fnUnregName )( 
            IOcfKeyQuery * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity);
        
        HRESULT ( STDMETHODCALLTYPE *fnKeyQuery )( 
            IOcfKeyQuery * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [in] */ ULONG ulKey,
            /* [out][in] */ LONG *plLen,
            /* [size_is][out] */ unsigned char *pchName);
        
        HRESULT ( STDMETHODCALLTYPE *fnReverseKeyQuery )( 
            IOcfKeyQuery * This,
            /* [in] */ LONG lLenName,
            /* [size_is][in] */ unsigned char *pszName,
            /* [out] */ BYTE *pbyServiceType,
            /* [out] */ ULONG *pulBindX,
            /* [out] */ ULONG *pulIdentity,
            /* [in] */ ULONG *pulKey);
        
        END_INTERFACE
    } IOcfKeyQueryVtbl;

    interface IOcfKeyQuery
    {
        CONST_VTBL struct IOcfKeyQueryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfKeyQuery_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfKeyQuery_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfKeyQuery_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfKeyQuery_fnRegName(This,byServiceType,ulBindX,ulIdentity,lLenName,pchName)	\
    (This)->lpVtbl -> fnRegName(This,byServiceType,ulBindX,ulIdentity,lLenName,pchName)

#define IOcfKeyQuery_fnUnregName(This,byServiceType,ulBindX,ulIdentity)	\
    (This)->lpVtbl -> fnUnregName(This,byServiceType,ulBindX,ulIdentity)

#define IOcfKeyQuery_fnKeyQuery(This,ulBindX,ulIdentity,ulKey,plLen,pchName)	\
    (This)->lpVtbl -> fnKeyQuery(This,ulBindX,ulIdentity,ulKey,plLen,pchName)

#define IOcfKeyQuery_fnReverseKeyQuery(This,lLenName,pszName,pbyServiceType,pulBindX,pulIdentity,pulKey)	\
    (This)->lpVtbl -> fnReverseKeyQuery(This,lLenName,pszName,pbyServiceType,pulBindX,pulIdentity,pulKey)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfKeyQuery_fnRegName_Proxy( 
    IOcfKeyQuery * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ LONG lLenName,
    /* [size_is][in] */ unsigned char *pchName);


void __RPC_STUB IOcfKeyQuery_fnRegName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfKeyQuery_fnUnregName_Proxy( 
    IOcfKeyQuery * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity);


void __RPC_STUB IOcfKeyQuery_fnUnregName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfKeyQuery_fnKeyQuery_Proxy( 
    IOcfKeyQuery * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [in] */ ULONG ulKey,
    /* [out][in] */ LONG *plLen,
    /* [size_is][out] */ unsigned char *pchName);


void __RPC_STUB IOcfKeyQuery_fnKeyQuery_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfKeyQuery_fnReverseKeyQuery_Proxy( 
    IOcfKeyQuery * This,
    /* [in] */ LONG lLenName,
    /* [size_is][in] */ unsigned char *pszName,
    /* [out] */ BYTE *pbyServiceType,
    /* [out] */ ULONG *pulBindX,
    /* [out] */ ULONG *pulIdentity,
    /* [in] */ ULONG *pulKey);


void __RPC_STUB IOcfKeyQuery_fnReverseKeyQuery_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfKeyQuery_INTERFACE_DEFINED__ */


#ifndef __IOcfPacket_INTERFACE_DEFINED__
#define __IOcfPacket_INTERFACE_DEFINED__

/* interface IOcfPacket */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfPacket;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C3E6EB6D-0515-4111-8B2E-1B268DE5E20F")
    IOcfPacket : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnAssemble( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lPktLen,
            /* [in] */ LONG lMaxHdLen,
            /* [out] */ LONG *plLen,
            /* [length_is][size_is][out] */ unsigned char *pchHd) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDisAssemble( 
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData,
            /* [out] */ BYTE *pbyServiceType,
            /* [out] */ LONG *plTotalLen,
            /* [out] */ LONG *plHdLen,
            /* [out] */ LONG *plDataLen) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfPacketVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfPacket * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfPacket * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfPacket * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnAssemble )( 
            IOcfPacket * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lPktLen,
            /* [in] */ LONG lMaxHdLen,
            /* [out] */ LONG *plLen,
            /* [length_is][size_is][out] */ unsigned char *pchHd);
        
        HRESULT ( STDMETHODCALLTYPE *fnDisAssemble )( 
            IOcfPacket * This,
            /* [in] */ LONG lLen,
            /* [size_is][in] */ unsigned char *pchData,
            /* [out] */ BYTE *pbyServiceType,
            /* [out] */ LONG *plTotalLen,
            /* [out] */ LONG *plHdLen,
            /* [out] */ LONG *plDataLen);
        
        END_INTERFACE
    } IOcfPacketVtbl;

    interface IOcfPacket
    {
        CONST_VTBL struct IOcfPacketVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfPacket_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfPacket_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfPacket_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfPacket_fnAssemble(This,byServiceType,lPktLen,lMaxHdLen,plLen,pchHd)	\
    (This)->lpVtbl -> fnAssemble(This,byServiceType,lPktLen,lMaxHdLen,plLen,pchHd)

#define IOcfPacket_fnDisAssemble(This,lLen,pchData,pbyServiceType,plTotalLen,plHdLen,plDataLen)	\
    (This)->lpVtbl -> fnDisAssemble(This,lLen,pchData,pbyServiceType,plTotalLen,plHdLen,plDataLen)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfPacket_fnAssemble_Proxy( 
    IOcfPacket * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ LONG lPktLen,
    /* [in] */ LONG lMaxHdLen,
    /* [out] */ LONG *plLen,
    /* [length_is][size_is][out] */ unsigned char *pchHd);


void __RPC_STUB IOcfPacket_fnAssemble_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfPacket_fnDisAssemble_Proxy( 
    IOcfPacket * This,
    /* [in] */ LONG lLen,
    /* [size_is][in] */ unsigned char *pchData,
    /* [out] */ BYTE *pbyServiceType,
    /* [out] */ LONG *plTotalLen,
    /* [out] */ LONG *plHdLen,
    /* [out] */ LONG *plDataLen);


void __RPC_STUB IOcfPacket_fnDisAssemble_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfPacket_INTERFACE_DEFINED__ */


#ifndef __IOcfMemoryManager_INTERFACE_DEFINED__
#define __IOcfMemoryManager_INTERFACE_DEFINED__

/* interface IOcfMemoryManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfMemoryManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("475E5EC1-4472-4b27-8D8E-17B05C344988")
    IOcfMemoryManager : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnAllocate( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lSize,
            /* [retval][out] */ BYTE **ppbyAllocate) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnReallocate( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ BYTE *pbyAlreadyAllocated,
            /* [in] */ LONG lSizeForCopy,
            /* [in] */ LONG lSize,
            /* [retval][out] */ BYTE **ppbyAllocate) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDeallocate( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ BYTE *pbyAlreadyAllocated) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnInitMngr( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lMinObjSize,
            /* [in] */ LONG lMaxObjSize) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnUninitMngr( 
            /* [in] */ BYTE byServiceType) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfMemoryManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfMemoryManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfMemoryManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfMemoryManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnAllocate )( 
            IOcfMemoryManager * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lSize,
            /* [retval][out] */ BYTE **ppbyAllocate);
        
        HRESULT ( STDMETHODCALLTYPE *fnReallocate )( 
            IOcfMemoryManager * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ BYTE *pbyAlreadyAllocated,
            /* [in] */ LONG lSizeForCopy,
            /* [in] */ LONG lSize,
            /* [retval][out] */ BYTE **ppbyAllocate);
        
        HRESULT ( STDMETHODCALLTYPE *fnDeallocate )( 
            IOcfMemoryManager * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ BYTE *pbyAlreadyAllocated);
        
        HRESULT ( STDMETHODCALLTYPE *fnInitMngr )( 
            IOcfMemoryManager * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lMinObjSize,
            /* [in] */ LONG lMaxObjSize);
        
        HRESULT ( STDMETHODCALLTYPE *fnUninitMngr )( 
            IOcfMemoryManager * This,
            /* [in] */ BYTE byServiceType);
        
        END_INTERFACE
    } IOcfMemoryManagerVtbl;

    interface IOcfMemoryManager
    {
        CONST_VTBL struct IOcfMemoryManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfMemoryManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfMemoryManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfMemoryManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfMemoryManager_fnAllocate(This,byServiceType,lSize,ppbyAllocate)	\
    (This)->lpVtbl -> fnAllocate(This,byServiceType,lSize,ppbyAllocate)

#define IOcfMemoryManager_fnReallocate(This,byServiceType,pbyAlreadyAllocated,lSizeForCopy,lSize,ppbyAllocate)	\
    (This)->lpVtbl -> fnReallocate(This,byServiceType,pbyAlreadyAllocated,lSizeForCopy,lSize,ppbyAllocate)

#define IOcfMemoryManager_fnDeallocate(This,byServiceType,pbyAlreadyAllocated)	\
    (This)->lpVtbl -> fnDeallocate(This,byServiceType,pbyAlreadyAllocated)

#define IOcfMemoryManager_fnInitMngr(This,byServiceType,lMinObjSize,lMaxObjSize)	\
    (This)->lpVtbl -> fnInitMngr(This,byServiceType,lMinObjSize,lMaxObjSize)

#define IOcfMemoryManager_fnUninitMngr(This,byServiceType)	\
    (This)->lpVtbl -> fnUninitMngr(This,byServiceType)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfMemoryManager_fnAllocate_Proxy( 
    IOcfMemoryManager * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ LONG lSize,
    /* [retval][out] */ BYTE **ppbyAllocate);


void __RPC_STUB IOcfMemoryManager_fnAllocate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfMemoryManager_fnReallocate_Proxy( 
    IOcfMemoryManager * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ BYTE *pbyAlreadyAllocated,
    /* [in] */ LONG lSizeForCopy,
    /* [in] */ LONG lSize,
    /* [retval][out] */ BYTE **ppbyAllocate);


void __RPC_STUB IOcfMemoryManager_fnReallocate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfMemoryManager_fnDeallocate_Proxy( 
    IOcfMemoryManager * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ BYTE *pbyAlreadyAllocated);


void __RPC_STUB IOcfMemoryManager_fnDeallocate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfMemoryManager_fnInitMngr_Proxy( 
    IOcfMemoryManager * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ LONG lMinObjSize,
    /* [in] */ LONG lMaxObjSize);


void __RPC_STUB IOcfMemoryManager_fnInitMngr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfMemoryManager_fnUninitMngr_Proxy( 
    IOcfMemoryManager * This,
    /* [in] */ BYTE byServiceType);


void __RPC_STUB IOcfMemoryManager_fnUninitMngr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfMemoryManager_INTERFACE_DEFINED__ */


#ifndef __IOcfExPerfInfo_INTERFACE_DEFINED__
#define __IOcfExPerfInfo_INTERFACE_DEFINED__

/* interface IOcfExPerfInfo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IOcfExPerfInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AE0D7E04-8D2F-4dea-8AF5-00040B531693")
    IOcfExPerfInfo : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnGetNetPrivatePerfInfo( 
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ LONG *plSndPendingCount,
            /* [out] */ LONG *plSndCount,
            /* [out] */ LONG *plRcvCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetNetPerfInfo( 
            /* [out] */ LONG *plConnCount,
            /* [out] */ LONG *plDisConnCount,
            /* [out] */ LONG *plMissConnCount,
            /* [out] */ LONG *plCurrConnCount,
            /* [out] */ LONG *plAllocObjs) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetNetPendingPerfInfo( 
            /* [out] */ ULONG *pulMaxBindX,
            /* [out] */ ULONG *pulMaxIdentity,
            /* [out] */ LONG *plMaxSndPendingCount,
            /* [out] */ ULONG *pulSessionCount,
            /* [out] */ LONG *plTotalSndPendingCount,
            /* [out] */ LONG *plTotalSndCount,
            /* [out] */ LONG *plTotalRcvCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetMemPerfInfo( 
            /* [out] */ LONG *plBuffPoolCount,
            /* [out] */ LONG *plBuffAllocCount,
            /* [out] */ LONG *plBuffDeallocCount) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IOcfExPerfInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IOcfExPerfInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IOcfExPerfInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IOcfExPerfInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetNetPrivatePerfInfo )( 
            IOcfExPerfInfo * This,
            /* [in] */ ULONG ulBindX,
            /* [in] */ ULONG ulIdentity,
            /* [out] */ LONG *plSndPendingCount,
            /* [out] */ LONG *plSndCount,
            /* [out] */ LONG *plRcvCount);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetNetPerfInfo )( 
            IOcfExPerfInfo * This,
            /* [out] */ LONG *plConnCount,
            /* [out] */ LONG *plDisConnCount,
            /* [out] */ LONG *plMissConnCount,
            /* [out] */ LONG *plCurrConnCount,
            /* [out] */ LONG *plAllocObjs);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetNetPendingPerfInfo )( 
            IOcfExPerfInfo * This,
            /* [out] */ ULONG *pulMaxBindX,
            /* [out] */ ULONG *pulMaxIdentity,
            /* [out] */ LONG *plMaxSndPendingCount,
            /* [out] */ ULONG *pulSessionCount,
            /* [out] */ LONG *plTotalSndPendingCount,
            /* [out] */ LONG *plTotalSndCount,
            /* [out] */ LONG *plTotalRcvCount);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetMemPerfInfo )( 
            IOcfExPerfInfo * This,
            /* [out] */ LONG *plBuffPoolCount,
            /* [out] */ LONG *plBuffAllocCount,
            /* [out] */ LONG *plBuffDeallocCount);
        
        END_INTERFACE
    } IOcfExPerfInfoVtbl;

    interface IOcfExPerfInfo
    {
        CONST_VTBL struct IOcfExPerfInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IOcfExPerfInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IOcfExPerfInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IOcfExPerfInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IOcfExPerfInfo_fnGetNetPrivatePerfInfo(This,ulBindX,ulIdentity,plSndPendingCount,plSndCount,plRcvCount)	\
    (This)->lpVtbl -> fnGetNetPrivatePerfInfo(This,ulBindX,ulIdentity,plSndPendingCount,plSndCount,plRcvCount)

#define IOcfExPerfInfo_fnGetNetPerfInfo(This,plConnCount,plDisConnCount,plMissConnCount,plCurrConnCount,plAllocObjs)	\
    (This)->lpVtbl -> fnGetNetPerfInfo(This,plConnCount,plDisConnCount,plMissConnCount,plCurrConnCount,plAllocObjs)

#define IOcfExPerfInfo_fnGetNetPendingPerfInfo(This,pulMaxBindX,pulMaxIdentity,plMaxSndPendingCount,pulSessionCount,plTotalSndPendingCount,plTotalSndCount,plTotalRcvCount)	\
    (This)->lpVtbl -> fnGetNetPendingPerfInfo(This,pulMaxBindX,pulMaxIdentity,plMaxSndPendingCount,pulSessionCount,plTotalSndPendingCount,plTotalSndCount,plTotalRcvCount)

#define IOcfExPerfInfo_fnGetMemPerfInfo(This,plBuffPoolCount,plBuffAllocCount,plBuffDeallocCount)	\
    (This)->lpVtbl -> fnGetMemPerfInfo(This,plBuffPoolCount,plBuffAllocCount,plBuffDeallocCount)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IOcfExPerfInfo_fnGetNetPrivatePerfInfo_Proxy( 
    IOcfExPerfInfo * This,
    /* [in] */ ULONG ulBindX,
    /* [in] */ ULONG ulIdentity,
    /* [out] */ LONG *plSndPendingCount,
    /* [out] */ LONG *plSndCount,
    /* [out] */ LONG *plRcvCount);


void __RPC_STUB IOcfExPerfInfo_fnGetNetPrivatePerfInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExPerfInfo_fnGetNetPerfInfo_Proxy( 
    IOcfExPerfInfo * This,
    /* [out] */ LONG *plConnCount,
    /* [out] */ LONG *plDisConnCount,
    /* [out] */ LONG *plMissConnCount,
    /* [out] */ LONG *plCurrConnCount,
    /* [out] */ LONG *plAllocObjs);


void __RPC_STUB IOcfExPerfInfo_fnGetNetPerfInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExPerfInfo_fnGetNetPendingPerfInfo_Proxy( 
    IOcfExPerfInfo * This,
    /* [out] */ ULONG *pulMaxBindX,
    /* [out] */ ULONG *pulMaxIdentity,
    /* [out] */ LONG *plMaxSndPendingCount,
    /* [out] */ ULONG *pulSessionCount,
    /* [out] */ LONG *plTotalSndPendingCount,
    /* [out] */ LONG *plTotalSndCount,
    /* [out] */ LONG *plTotalRcvCount);


void __RPC_STUB IOcfExPerfInfo_fnGetNetPendingPerfInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IOcfExPerfInfo_fnGetMemPerfInfo_Proxy( 
    IOcfExPerfInfo * This,
    /* [out] */ LONG *plBuffPoolCount,
    /* [out] */ LONG *plBuffAllocCount,
    /* [out] */ LONG *plBuffDeallocCount);


void __RPC_STUB IOcfExPerfInfo_fnGetMemPerfInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IOcfExPerfInfo_INTERFACE_DEFINED__ */


/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


